A digital-image input device, such as a digital camera or a scanner, converts light reflected from an object into digital data representing an image of the object. Typically, the digital data is divided into units, each unit describing the color of a portion, or pixel, of the image. Accordingly, the image may be described as a two-dimensional array of pixels (x, y). Further, each unit of digital data typically describes the color of a pixel by describing the amount, or intensity, of each primary color red, green, and blue, present in the pixel. For example, the digital data may indicate that the pixel at x=0 and y=0 has a red intensity of 200, a green intensity of 134, and a blue intensity of 100, where the intensity of each primary color is represented by eight bits. (Eight bits allows 256 combinations, so each primary color may have a value of 0-255, in this example, where 255 indicates the highest level of intensity and zero indicates no intensity, or black.)
The digital data produced by a digital-image input device is referred to herein as “device dependent data,” because different digital-image input devices typically produce different digital data representing the same image acquired under the same conditions. For example, a first digital camera may indicate that a first pixel of an image has a red component of 200, whereas a second digital camera may indicate that the same pixel of an equivalent image taken under the same conditions has a red component of 202. For another example, the first digital camera may record the red in an apple as 200, and the second digital camera may record the red in the same part of the apple (as imaged under the same conditions) as 202. Because the device-dependent data generated by a digital-image input device typically specifies the red, green, and blue color components associated with each pixel, it is often referred to as “RGB” data.
The differences between device-dependent data from two different devices arise from minute differences in the imaging components in each device. These differences create problems when the images are output by a digital-image output device, such as a color ink-jet printer, a CRT monitor, or an LCD monitor. For example, the image of the apple taken by the first digital camera discussed above will appear differently than the image of the apple taken by the second digital camera when output to the same color ink-jet printer.
To further complicate matters, digital-image output devices also have the same types of discrepancies between each other that digital-image input devices have. For example, a user may want to view an image of a red square on one CRT monitor while a customer simultaneously views the same image on another CRT monitor. Assume that the digital-image input device used to image the red square recorded all pixels of the red square as red=200, green=0, and blue=0. Commonly, when the two monitors display the same image, each monitor displays a slightly different red color even though they have received the same digital data from the input device.
The same differences commonly exist when printing the same image to two different printers. However, it should be noted that the digital image data processed by printers typically describes each pixel in an image according to the amount, or intensity, of each secondary color cyan, magenta, and yellow, as well as black present in the pixel. Accordingly, the device-dependent digital image data processed by printers is referred to as “CMYK” data (as opposed to RGB device-dependent data associated with digital-image input devices.) (Monitors, on the other hand, display data in RGB format).
Color profiles provide a solution to the color discrepancies between devices discussed above. Each digital-image input device typically has its own color profile that maps its device-dependent data into device-independent data. Correspondingly, each digital-image output device typically has its own color profile that converts device-independent data into device-dependent data usable by the output device to print colors representative of the device-independent data. Device-independent data describes the color of pixels in an image in a universal manner, i.e., a device-independent color space. A device-independent color space assigns a unique value to every color, where the unique value for each color is determined using calibrated instruments and lighting conditions. Examples of device-independent color spaces are CIEXYZ, CIELAB, CIE Yxy, and CIE LCH, known in the art. Device-independent data is sometimes referred to herein as “device-independent coordinates.” Device-independent data in the CIEXYZ color space is referred to herein as “XYZ data,” or just “XYZ.” Device-independent in the CIELAB color space is referred to herein as “LAB data,” “CIELAB” or just “LAB.”
Theoretically, color profiles allow a user to acquire an image of an object using any digital-image input device and to output an accurate representation of the object from a digital-image output device. With reference to FIG. 1, for example, an image of an object 101 is acquired using a digital-image input device 102. The image is represented in FIG. 1 as RGB 103. Then, the image RGB 103 is converted into device-independent data (XYZ 105, for example) using the digital-image input device's color profile 104. The device-independent data XYZ 105 is then converted using the output device's color profile 106 into device-dependent data (CMYK 107, for example) specific to the output device 108. The output device 108 uses its device-dependent data CMYK 107 to generate an accurate representation 109 of the object 101.
Conventionally, a color profile is generated by acquiring a test image of a color chart located in front of scenery under a standard lighting condition. For example, a digital camera may be used to acquire a test image of a color chart with a basket of fruit in the background. A color chart generally is a physical chart that includes different color patches, each patch associated with a device-independent color value, such as a color value identifying a CIELAB color, when viewed under a standard lighting condition, such as D50, known in the art.
By comparing the device-dependent data acquired from the test image with the device-independent data known to be associated with the color chart, a color profile for the digital-image input device may be generated. However, many conventional schemes have difficulty or fail altogether when the color chart is illuminated differently than the scenery in the test image, or when the color chart, the scene, or both are over-exposed. Further, several of the better conventional schemes for generating a color profile need to operate on uncorrected raw 16-bit RGB device-dependent data to be successful, because more standard 8-bit image formats, such as TIFF or JPG, tend to exhibit clipping. Accordingly, a need in the art exists for quality color profiling capable of operating on (a) over-exposed or under-exposed color charts relative to scenery and (b) standard 8-bit formatted device-dependent data.